home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / util / misc / tritonrexx376.lha / TritonRexx / ARexxControl / ARexxControl.shell < prev    next >
Text File  |  1995-09-16  |  2KB  |  96 lines

  1. /*
  2. ** $VER: ARexxControl.shell 1.1 (16.9.95) ©1995 by Jürgen Kohrmeyer
  3. **
  4. ** Dieses Skript basiert auf 'ArexxShell2.1' von 'Karsten Wysocki',
  5. ** welches aus dem 'ArexxManager2.1'-Archiv stammt.
  6. */
  7.  
  8.  
  9. /*
  10. ** Skript beenden, wenn die Shell schon gestartet ist
  11. */
  12.  
  13. IF SHOW('PORTS','AREXXCONTROL_SHELL') THEN
  14.    EXIT(0)
  15.  
  16.  
  17. /*
  18. ** Libraries öffnen
  19. */
  20.  
  21. IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
  22.    IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN DO
  23.       SAY "Can't open 'rexxsupport.library'"
  24.       EXIT(10)
  25.    END
  26.  
  27.  
  28. /*
  29. ** Port öffnen
  30. */
  31.  
  32. CALL OPENPORT('AREXXCONTROL_SHELL')
  33.  
  34.  
  35. /*
  36. ** Eingaben auswerten und Befehle abarbeiten
  37. */
  38.  
  39. OPTIONS FAILAT 21
  40.  
  41. hostaddress = "REXX"
  42.  
  43. DO FOREVER
  44.    CALL WRITECH('STDIN',hostaddress||'> ')
  45.  
  46.    commandstring = STRIP(READLN('STDIN'))
  47.  
  48.    teststring = UPPER(commandstring)
  49.  
  50.  
  51.    /*
  52.    ** Bei 'X' oder 'EXIT' wird das Skript beendet
  53.    */
  54.  
  55.    IF teststring = 'EXIT' | teststring = 'X' THEN
  56.       LEAVE
  57.  
  58.  
  59.    /*
  60.    ** Neue Host-Adresse merken
  61.    */
  62.  
  63.    IF WORD(teststring,1) = 'ADDRESS' THEN DO
  64.       newaddress = WORD(commandstring,2)
  65.  
  66.       IF newaddress ~= '' THEN
  67.          hostaddress = newaddress
  68.    END
  69.  
  70.  
  71.    /*
  72.    ** Temporäres ARexx-Skript erstellen und ausführen
  73.    */
  74.  
  75.    rexxtext = '/**/;OPTIONS RESULTS;ADDRESS "'||hostaddress||'";RC=0;RESULT="";SAY;'||,
  76.               commandstring||';SAY "----------";SAY "RC    :" rc;SAY "RESULT:" result;EXIT'
  77.  
  78.    IF OPEN('testscript','T:ARexxControl.temp','W') THEN DO
  79.       WRITELN('testscript',rexxtext)
  80.       CALL CLOSE('testscript')
  81.    END
  82.  
  83.    ADDRESS COMMAND 'cd T:'||'0A'X||'SYS:RexxC/RX T:ARexxControl.temp'
  84. END
  85.  
  86.  
  87. /*
  88. ** Tempdatei löschen, Port schließen und Skript beenden
  89. */
  90.  
  91. CALL DELETE('T:ARexxControl.temp')
  92.  
  93. CALL CLOSEPORT('AREXXCONTROL_SHELL')
  94.  
  95. EXIT(0)
  96.